<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>sprox_desfire_mgmt_c.html</title>
<!-- Source : c:/temp/desfire/sprox_desfire_mgmt.c -->
<!-- Doc generated on Thu Jun 24 12:26:36 2010 by johann on PC_DEV_5 -->
<!-- Generated with ROBODoc Version 4.99.8 (Specific build by PRO ACTIVE - Apr 13 2010) -->
<style type="text/css">
body
{
  background-color: #ffffff;
  color: #000000;
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 9pt;
  margin-left: 60px;
  margin-right: 40px;  
}
table
{
  border-collapse: collapse;
  border-style: solid;
  border-width: 1px;
  border-color: #000000;
  margin-bottom: 12px;
}
td
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 9pt;
  vertical-align: top;
  padding-right: 6px;
  border-style: solid;
  border-width: 1px;
  border-color: #dddddd; 
}
th
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 9pt;
  vertical-align: top;  
  padding-right: 6px;
  border-style: solid;
  border-width: 1px;
  border-color: #000000;
  background-color: #dddddd;  
}
h1
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 18pt;
  font-weight: bold;
  margin-bottom: 36px;
  color: #000000;
  margin-left: -40px;
}
h2
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 12pt;
  font-weight: bold;
  margin-top: 48px;
  margin-bottom: 24px;
  padding-top: 2px;
  padding-bottom: 2px;
  background-color: #dddddd;
  color: #000000;
  margin-left: -40px;
}
h3
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 11pt;
  font-weight: bold;
  margin-top: 36px;
  margin-bottom: 24px; 
  border-style: none;
  border-top-style: solid;  
  border-width: 1px;
  border-color: #cccccc; 
  margin-left: -40px;
}
h4
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 11pt;
  font-weight: bold;
  margin-top: 24px;
  margin-bottom: 12px;  
}
h5
{
  font-family: Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
  font-size: 9pt;
  font-weight: bold;
  margin-top: 12px;
  margin-bottom: 2px;  
}
a
{
  color: #0000ff;
}
p
{
  margin-top: 0px;
  margin-bottom: 6px;  
  width: 600px;
  text-align: justify;
}
ul
{
  margin-top: 0px;
  margin-bottom: 6px;  
  width: 600px;
  text-align: justify;
}
li
{
  margin-top: 0px;
  margin-bottom: 6px;  
  width: 550px;
  text-align: justify;
}
tt
{
  font-family: Courier, Courier New;
  font-size: 10pt;
}
pre
{
  background-color: #ffffff;
  color: #000000;
  font-size: 10pt;
}
.NAV
{
  font-size: 7pt;
}
a.NAV
{
  color: #0000cc;
}
.TOC
{
  font-size: 9pt;
  color: #888888;
}
a.TOC
{
  color: #0000ff;
}
.INDEX
{
  font-size: 9pt;
}
a.INDEX
{
  color: #0000ff;
}
.TYPE
{
  font-size: 7pt;
  color: #888888;
}
.ITEM
{
  font-weight: bold;
  color: #000088;
}
.LABEL
{
  color: #000088;
}
.HISTORY
{
  color: #006600;
}
.AUTHOR
{
  color: #006600;
}
.COPYRIGHT
{
  color: #006600;
}
.PORTABILITY
{
  color: #006600;
}
.WARNING
{
  color: #aa0000;
}

.bitinfo
{
  width: 60px;
  font-style: italic;
  text-align: center;
}

.bitnum
{
  text-align: center;
}

.bitname
{
  font-weight: bold;
  text-align: center;
}

.tabitem
{
  width: 100px;
}

.tabname
{
  width: 200px;
}

.tabdesc
{
  width: 450px;
}

.value
{
  font-family: courier;
  text-align: right;
}

.tabsepar
{
  border-top-style: solid;
  border-bottom-style: solid;
  border-width: 2px;
  border-color: #888888;
  font-style: italic;
  text-align: center;
}
</style>
</head>
<body bgcolor="#FFFFFF">
<a name="robo_top_of_doc"></a>
<h3 align="center">TABLE OF CONTENTS</h3>
<ul>
<li><a class="TOC" href="#robo12">Management</a></li>
<li><a class="TOC" href="#robo36">CreateApplication</a></li>
<li><a class="TOC" href="#robo39">CreateIsoApplication</a></li>
<li><a class="TOC" href="#robo52">DeleteApplication</a></li>
<li><a class="TOC" href="#robo81">DF_VERSION_INFO</a></li>
<li><a class="TOC" href="#robo96">FormatPICC</a></li>
<li><a class="TOC" href="#robo97">GetApplicationIDs</a></li>
<li><a class="TOC" href="#robo98">GetCardUID</a></li>
<li><a class="TOC" href="#robo99">GetDFNames</a></li>
<li><a class="TOC" href="#robo103">GetFreeMemory</a></li>
<li><a class="TOC" href="#robo104">GetIsoFileIDs</a></li>
<li><a class="TOC" href="#robo109">GetVersion</a></li>
<li><a class="TOC" href="#robo116">SelectApplication</a></li>
<li><a class="TOC" href="#robo117">SetConfiguration</a></li>
</ul>
<h3>&nbsp;</h3>


<h1><a name="robo12"><span class="TYPE">[Modules]</span><a class="LABEL" name="Management">
Management</a></h1>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./modules.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   DesfireAPI :: Card management functions
</pre>
</span><p class="ITEM">COPYRIGHT</p>
<span class="COPYRIGHT"><pre class="COPYRIGHT">   (c) 2009 SpringCard - <a href="http://www.springcard.com">www.springcard.com</a>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Implementation of management functions to personalize or format the
   DESFIRE card.
</pre>
</span>


<h2><a name="robo36"><span class="TYPE">[Functions]</span><a class="LABEL" name="CreateApplication">
CreateApplication</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>CreateApplication</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Create a new application on the DesFire card
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_CreateApplication(DWORD aid,
                                         BYTE key_setting_1,
                                         BYTE key_setting_2);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_CreateApplication(SPROX_INSTANCE rInst,
                                          DWORD aid,
                                          BYTE key_setting_1,
                                          BYTE key_setting_2);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_CreateApplication(SCARDHANDLE hCard,
                                        DWORD aid,
                                        BYTE key_setting_1,
                                        BYTE key_setting_2);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   DWORD aid          : Application IDentifier
   BYTE key_setting_1 : Settings of the Application master key (see chapter 4.3.2 of datasheet
                        of mifare DesFire MF3ICD40 for more information)
   BYTE key_setting_2 : Number of keys that can be stored within the application for 
                        cryptographic purposes, plus flags to specify cryptographic method and
                        to enable giving <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> names to the EF.
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a> : application created successfully
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   CreateApplicationIso
   <a class="LINK_37" href="#robo52">DeleteApplication</a>
   <a class="LINK_37" href="#robo97">GetApplicationIDs</a>
   <a class="LINK_37" href="#robo116">SelectApplication</a>
</pre>
</span>


<h2><a name="robo39"><span class="TYPE">[Functions]</span><a class="LABEL" name="CreateIsoApplication">
CreateIsoApplication</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>CreateIsoApplication</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Create a new application on the DesFire card, and defines the <a class="LINK_6" href="./sprox_desfire_iso_c.html#robo7">ISO</a> identifier
   and name of the application
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_CreateIsoApplication(DWORD aid,
                                            BYTE key_setting_1,
                                            BYTE key_setting_2,
                                            WORD iso_df_id,
                                            const BYTE iso_df_name[],
                                            BYTE iso_df_namelen);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_CreateIsoApplication(SPROX_INSTANCE rInst,
                                             DWORD aid,
                                             BYTE key_setting_1,
                                             BYTE key_setting_2,
                                             WORD iso_df_id,
                                             const BYTE iso_df_name[],
                                             BYTE iso_df_namelen);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_CreateIsoApplication(SCARDHANDLE hCard,
                                           DWORD aid,
                                           BYTE key_setting_1,
                                           BYTE key_setting_2,
                                           WORD iso_df_id,
                                           const BYTE iso_df_name[],
                                           BYTE iso_df_namelen);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   DWORD aid                : Application IDentifier
   BYTE key_setting_1       : Settings of the Application master key (see chapter 4.3.2 of datasheet
                              of mifare DesFire MF3ICD40 for more information)
   BYTE key_setting_2       : Number of keys that can be stored within the application for 
                              cryptographic purposes, plus flags to specify cryptographic method and
                              to enable giving <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> names to the EF.
   BYTE iso_df_id           : ID of the <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> DF
   const BYTE iso_df_name[] : name of the <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> DF
   BYTE iso_df_namelen      : length of iso_df_name
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a> : application created successfully
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="#robo36">CreateApplication</a>
   <a class="LINK_37" href="#robo52">DeleteApplication</a>
   <a class="LINK_37" href="#robo97">GetApplicationIDs</a>
   <a class="LINK_37" href="#robo116">SelectApplication</a>
</pre>
</span>


<h2><a name="robo52"><span class="TYPE">[Functions]</span><a class="LABEL" name="DeleteApplication">
DeleteApplication</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>DeleteApplication</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Permanently deactivates an application on the DesFire card
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_DeleteApplication(DWORD aid);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_DeleteApplication(SPROX_INSTANCE rInst,
                                     DWORD aid);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_DeleteApplication(SCARDHANDLE hCard,
                                     DWORD aid);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   DWORD aid                   : Application IDentifier
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : application deleted successfully
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="#robo36">CreateApplication</a>
   <a class="LINK_37" href="#robo97">GetApplicationIDs</a>
   <a class="LINK_37" href="#robo116">SelectApplication</a>
</pre>
</span>


<h2><a name="robo81"><span class="TYPE">[Types]</span><a class="LABEL" name="DF5fVERSION5fINFO">
DF_VERSION_INFO</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./types.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>DF_VERSION_INFO</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Structure for returning the information supplied by the <a class="LINK_6" href="#robo109">GetVersion</a> command.
</pre>
</span><p class="ITEM">SOURCE</p>
<span class="SOURCE"><pre class="SOURCE">   {
     // hardware related information
     BYTE    bHwVendorID;     // vendor ID (0x04 for NXP)
     BYTE    bHwType;         // type (0x01)
     BYTE    bHwSubType;      // subtype (0x01)
     BYTE    bHwMajorVersion; // major version number
     BYTE    bHwMinorVersion; // minor version number
     BYTE    bHwStorageSize;  // storage size (0x18 = 4096 bytes)
     BYTE    bHwProtocol;     // communication protocol type (0x05 meaning <a class="LINK_0" href="./sprox_desfire_iso_c.html#robo7">ISO</a> 14443-2 and -3)
 
     // software related information
     BYTE    bSwVendorID;     // vendor ID (0x04 for NXP)
     BYTE    bSwType;         // type (0x01)
     BYTE    bSwSubType;      // subtype (0x01)
     BYTE    bSwMajorVersion; // major version number
     BYTE    bSwMinorVersion; // minor version number
     BYTE    bSwStorageSize;  // storage size (0x18 = 4096 bytes)
     BYTE    bSwProtocol;     // communication protocol type (0x05 meaning <a class="LINK_0" href="./sprox_desfire_iso_c.html#robo7">ISO</a> 14443-3 and -4)

     BYTE    abUid[7];        // unique serial number
     BYTE    abBatchNo[5];    // production batch number
     BYTE    bProductionCW;   // calendar week of production
     BYTE    bProductionYear; // year of production
   } <strong>DF_VERSION_INFO</strong>;
</pre>
</span>


<h2><a name="robo96"><span class="TYPE">[Functions]</span><a class="LABEL" name="FormatPICC">
FormatPICC</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>FormatPICC</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Releases the DesFire card user memory
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_FormatPICC(void);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_FormatPICC(SPROX_INSTANCE rInst);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_FormatPICC(SCARDHANDLE hCard);
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : format succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">NOTES</p>
<span class="NOTES"><pre class="NOTES">   All applications are deleted and all files within those applications  are deleted.
   This command always requires a preceding authentication with the DesFire card master key.
</pre>
</span>


<h2><a name="robo97"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetApplicationIDs">
GetApplicationIDs</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetApplicationIDs</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Returns the Application IDentifiers of all active applications on a DesFire card
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetApplicationIDs(BYTE aid_max_count,
                                     DWORD aid_list[],
                                     BYTE *aid_count);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetApplicationIDs(SPROX_INSTANCE rInst,
                                     BYTE aid_max_count,
                                     DWORD aid_list[],
                                     BYTE *aid_count);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetApplicationIDs(SCARDHANDLE hCard,
                                     BYTE aid_max_count,
                                     DWORD aid_list[],
                                     BYTE *aid_count);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   BYTE aid_max_count          : maximum number of Application IDentifiers
   DWORD aid_list[]            : Application IDentifier list 
   BYTE *aid_count             : number of Application IDentifiers on DesFire card
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="#robo36">CreateApplication</a>
   <a class="LINK_37" href="#robo52">DeleteApplication</a>
   <a class="LINK_37" href="#robo116">SelectApplication</a>
</pre>
</span>


<h2><a name="robo98"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetCardUID">
GetCardUID</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetCardUID</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Reads out the 7-byte serial number of the PICC
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetCardUID(BYTE uid[7]);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetCardUID(SPROX_INSTANCE rInst,
                                   BYTE uid[7]);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetCardUID(SCARDHANDLE hCard,
                                 BYTE uid[7]);
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a> : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">NOTES</p>
<span class="NOTES"><pre class="NOTES">   This command must be preceded by an authentication (with any key).
</pre>
</span>


<h2><a name="robo99"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetDFNames">
GetDFNames</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetDFNames</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Returns the Application IDentifiers, <a class="LINK_6" href="./sprox_desfire_iso_c.html#robo7">ISO</a> DF IDs and <a class="LINK_6" href="./sprox_desfire_iso_c.html#robo7">ISO</a> DF Names of all active
   applications on a DesFire card

 REMARKS
   This function must be called within a loop. Before first call, set follow_up to
   FALSE. Loop while follow_up is TRUE.
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetDFNames(BOOL  *follow_up,
                                  DWORD *aid,
                                  WORD  *iso_df_id,
                                  BYTE  iso_df_name[16+1],
                                  BYTE  *iso_df_namelen);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetDFNames(SPROX_INSTANCE rInst,
                                   BOOL  *follow_up,
                                   DWORD *aid,
                                   WORD  *iso_df_id,
                                   BYTE   iso_df_name[16+1],
                                   BYTE  *iso_df_namelen);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetDFNames(SCARDHANDLE hCard,
                                 BOOL  *follow_up,
                                 DWORD *aid,
                                 WORD  *iso_df_id,
                                 BYTE   iso_df_name[16+1],
                                 BYTE  *iso_df_namelen);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   BOOL  *follow_up         : IN/OUT : whether a subsequent call is needed, or not
   DWORD *aid               : Desfire AID
   WORD  *iso_df_id         : <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> ID of the DF
   BYTE   iso_df_name[16+1] : <a class="LINK_12" href="./sprox_desfire_iso_c.html#robo7">ISO</a> name of the DF
   BYTE  *iso_df_namelen    : actual length of iso_df_name
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="#robo36">CreateApplication</a>
   <a class="LINK_37" href="#robo52">DeleteApplication</a>
   <a class="LINK_37" href="#robo116">SelectApplication</a>
</pre>
</span>


<h2><a name="robo103"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetFreeMemory">
GetFreeMemory</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetFreeMemory</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Reads out the number of available bytes on the PICC
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetFreeMemory(DWORD *pdwFreeBytes);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetFreeMemory(SPROX_INSTANCE rInst,
                                      DWORD *pdwFreeBytes);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetFreeMemory(SCARDHANDLE hCard,
                                    DWORD *pdwFreeBytes);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   DWORD *pdwFreeBytes : number of free bytes on the PICC
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a> : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">NOTES</p>
<span class="NOTES"><pre class="NOTES">   This command can be issued without valid authentication.
</pre>
</span>


<h2><a name="robo104"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetIsoFileIDs">
GetIsoFileIDs</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetIsoFileIDs</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Returns the File IDentifiers of all active files within the currently selected application
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetIsoFileIDs(BYTE fid_max_count,
                                     WORD fid_list[],
                                     BYTE *fid_count);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetIsoFileIDs(SPROX_INSTANCE rInst,
                                      BYTE fid_max_count,
                                      WORD fid_list[],
                                      BYTE *fid_count);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetIsoFileIDs(SCARDHANDLE hCard,
                                    BYTE fid_max_count,
                                    WORD fid_list[],
                                    BYTE *fid_count);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   BYTE fid_max_count          : maximum number of File IDentifiers
   WORD fid_list[]             : File IDentifiers list 
   BYTE *fid_count             : number of File IDentifiers in the selected application
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="./sprox_desfire_files_c.html#robo101">GetFileIDs</a>
   GetDfNames
</pre>
</span>


<h2><a name="robo109"><span class="TYPE">[Functions]</span><a class="LABEL" name="GetVersion">
GetVersion</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>GetVersion</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Returns manufacturing related data of the DesFire card
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_GetVersion(<a class="LINK_3" href="#robo81">DF_VERSION_INFO</a> *pVersionInfo);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_GetVersion(SPROX_INSTANCE rInst,
                                     <a class="LINK_3" href="#robo81">DF_VERSION_INFO</a> *pVersionInfo);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_GetVersion(SCARDHANDLE hCard,
                                     <a class="LINK_3" href="#robo81">DF_VERSION_INFO</a> *pVersionInfo);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   <a class="LINK_12" href="#robo81">DF_VERSION_INFO</a> *pVersionInfo : card's version information
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span>


<h2><a name="robo116"><span class="TYPE">[Functions]</span><a class="LABEL" name="SelectApplication">
SelectApplication</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>SelectApplication</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Selects one specific application for further access
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_SelectApplication(DWORD aid);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_SelectApplication(SPROX_INSTANCE rInst,
                                     DWORD aid);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_SelectApplication(SCARDHANDLE hCard,
                                     DWORD aid);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">   DWORD aid                   : Application IDentifier
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a>    : application selected
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">SEE ALSO</p>
<span class="SEE_ALSO"><pre class="SEE ALSO">   <a class="LINK_37" href="#robo36">CreateApplication</a>
   <a class="LINK_37" href="#robo52">DeleteApplication</a>
   <a class="LINK_37" href="#robo97">GetApplicationIDs</a>
</pre>
</span>


<h2><a name="robo117"><span class="TYPE">[Functions]</span><a class="LABEL" name="SetConfiguration">
SetConfiguration</a></h2>

<p class="NAV">[<a class="NAV" href="#robo_top_of_doc">top</a>][<a class="NAV" href="./functions.html#top">index</a>]</p>
<p class="ITEM">NAME</p>
<span class="NAME"><pre class="NAME">   <strong>SetConfiguration</strong>
</pre>
</span><p class="ITEM">DESCRIPTION</p>
<span class="DESCRIPTION"><pre class="DESCRIPTION">   Sends the <strong>SetConfiguration</strong> command to the DESFIRE card.
</pre>
</span><p class="ITEM">SYNOPSIS</p>
<span class="SYNOPSIS"><pre class="SYNOPSIS">   [[sprox_desfire.dll]]
   SWORD SPROX_Desfire_SetConfiguration(BYTE option,
                                        const BYTE data[],
                                        BYTE length);

   [[sprox_desfire_ex.dll]]
   SWORD SPROXx_Desfire_SetConfiguration(SPROX_INSTANCE rInst,
                                         BYTE option,
                                         const BYTE data[],
                                         BYTE length);

   [[pcsc_desfire.dll]]
   LONG  SCardDesfire_SetConfiguration(SCARDHANDLE hCard,
                                       BYTE option,
                                       const BYTE data[],
                                       BYTE length);
</pre>
</span><p class="ITEM">INPUTS</p>
<span class="INPUTS"><pre class="INPUTS">
</pre>
</span><p class="ITEM">RETURNS</p>
<span class="RETURNS"><pre class="RETURNS">   <a class="LINK_21" href="./desfire_card_h.html#robo77">DF_OPERATION_OK</a> : operation succeeded
   Other code if internal or communication error has occured. 
</pre>
</span><p class="ITEM">NOTES</p>
<span class="NOTES"><pre class="NOTES">   <a class="LINK_23" href="./sprox_desfire_read_c.html#robo15">Read</a> DESFIRE EV1 manual, chapter 9.4.9 for details.
   DO NOT USE THIS COMMAND unless you're really sure you know
   what you're doing.
</pre>
</span>
<hr />
Generated from <b>sprox_desfire_mgmt.c</b> on Thu Jun 24 12:26:36 2010<br />
</body>
</html>
